package com.vincent.template.service.logic;

import com.vincent.template.dto.sys.user.UserCancelDto;
import com.vincent.template.dto.sys.user.UserInfoDto;
import com.vincent.template.dto.sys.user.UserPwdResetDto;
import com.vincent.template.dto.sys.user.UserRegisterDto;
import com.vincent.template.dto.sys.user.UserUpdateDto;

import java.util.List;

/**
 * @author Vincent Wang
 * @date 2021/3/24 22:25
 */
public interface UserService {

    /**
     * 批量查询用户信息
     * @return
     */
    List<UserInfoDto> findUsers();

    /**
     * 根据用户id查询用户信息
     * @param id
     * @return
     */
    UserInfoDto findUserById(String id);

    /**
     * 注册
     * @param registerDto
     * @return
     */
    String register(UserRegisterDto registerDto);

    /**
     * 修改密码
     * @param id
     * @param pwdResetDto
     * @return
     */
    boolean resetPwd(String id, UserPwdResetDto pwdResetDto);

    /**
     * 更新信息
     * @param id
     * @param updateDto
     * @return
     */
    boolean updateInfo(String id, UserUpdateDto updateDto);

    /**
     * 用户自我注销
     * @param cancelDto
     * @return
     */
    boolean selfCancel(UserCancelDto cancelDto);

    /**
     * 管理员注销
     * @param id
     * @return
     */
    boolean adminCancel(String id);
}
